# 需求: 格式化输出一个学员的基本信息(姓名, 年龄, 身高, 学号)
name = '小芳'
age = 12
height = 1.68678
stu_NO = 3

# 使用%号方式格式化字符串并输出
# 学员的姓名为: 小芳, 学员的年龄是: 12岁, 学员的身高是: 1.680000米, 学员的学号是: 3
print('学员的姓名为: %s, 学员的年龄是: %d岁, 学员的身高是: %f米, 学员的学号是: %d' % (name, age, height, stu_NO))

# 身高保留两位小数, 学号为3位,不足位用0补齐
# 学员的姓名为: 小芳, 学员的年龄是: 12岁, 学员的身高是: 1.68米, 学员的学号是: 003
print('学员的姓名为: %s, 学员的年龄是: %d岁, 学员的身高是: %.2f米, 学员的学号是: %03d' % (name, age, height, stu_NO))

print("-----------------------------")

# f-string字符串是python3.6版本以上才可以使用的一种字符串格式化方式
# 格式: f'要输出的字符串{变量}'

print(f'学员的名字是{name}')  # 学员的名字是小芳
# f可以使用大写,也可以使用小写
print(F'学员的名字是{name}')  # 学员的名字是小芳

# 使用f-string字符串在一个字符串中拼接多个变量
# 如果字符串之前没有添加f则不能获取大括号内的变量信息
# 学员的姓名为: {name}, 学员的年龄是: {age}岁, 学员的身高是: {height}米, 学员的学号是: {stu_NO}
print('学员的姓名为: {name}, 学员的年龄是: {age}岁, 学员的身高是: {height}米, 学员的学号是: {stu_NO}')

# 学员的姓名为: 小芳, 学员的年龄是: 12岁, 学员的身高是: 1.68678米, 学员的学号是: 3
print(f'学员的姓名为: {name}, 学员的年龄是: {age}岁, 学员的身高是: {height}米, 学员的学号是: {stu_NO}')

# 身高保留两位小数, 学号为3位,不足位用0补齐
# 保留n位小数  {变量: .2f}
# 不足位用0补齐  {变量: 03d}
# 学员的姓名为: 小芳, 学员的年龄是: 12岁, 学员的身高是: 1.69米, 学员的学号是: 003
print(f'学员的姓名为: {name}, 学员的年龄是: {age}岁, 学员的身高是: {height:.2f}米, 学员的学号是: {stu_NO:03d}')

print("-----------------------------")

# 练习
# 去超市购买苹果, 定义两个变量, weight 重量,  price 单价 ,计算总价
# 输出 我在超市购买了XX斤苹果, 单价XX元, 最终付款XX元

weight = 3.4
price = 12.6
total = weight*price

# 使用f-string进行格式化输出
print(f'我在超市购买了{weight}斤苹果, 单价{price}元, 最终付款{total}元')
# 需求: 我们想让最终付款金额,保留两位小数,并且四舍五入
# 格式{float类型数据 :.2f}
print(f'我在超市购买了{weight}斤苹果, 单价{price}元, 最终付款{total:.2f}元')

# 如果我们想输出整数,占用6位,不足位用0补齐
# 格式{int类型数据:06d}
stu_No = 3
print(f'我的学号是{stu_No:06d}')
# 在f-string字符串中d可以被省略
print(f'我的学号是{stu_No:06}')


